package org.dromara.tearoom.api;

import org.dromara.common.core.exception.user.UserException;
import org.dromara.tearoom.api.domain.vo.RemoteAppUserVo;
import org.dromara.tearoom.api.model.XcxLoginAppUser;

import java.util.List;

/**
 * 用户服务
 *
 * @author Lion Li
 */
public interface RemoteAppUserService {



    /**
     * 通过openid查询用户信息
     *
     * @param openid openid
     * @param mobileCode mobileCode
     * @return 结果
     */
    XcxLoginAppUser getUserInfoByOpenidAndMobile(String openid,String mobileCode) throws UserException;


    /**
     * 通过appId查询密钥
     *
     * @param appId AppId
     * @return 结果
     */
    String selectAppSecret(String appId);


    /**
     * 通过userId查询用户账户
     *
     * @param userId 用户id
     * @return 结果
     */
    String selectUserNameById(Long userId);



    /**
     * 通过用户ID查询用户账户
     *
     * @param userIds 用户ID 多个用逗号隔开
     * @return 用户名称
     */
    String selectNicknameByIds(String userIds);

    /**
     * 通过用户ID查询用户手机号
     *
     * @param userId 用户id
     * @return 用户手机号
     */
    String selectPhoneById(Long userId);



    /**
     * 更新用户信息
     *
     * @param userId 用户ID
     * @param ip     IP地址
     */
    void recordLoginInfo(Long userId, String ip);

    /**
     * 通过用户ID查询用户列表
     *
     * @param userIds 用户ids
     * @return 用户列表
     */
    List<RemoteAppUserVo> selectListByIds(List<Long> userIds);

    /**
     *
     * 控制断路器开关
     * @param roomId
     * @param onOff
     */
    void  operateChopper(Long roomId,Boolean onOff);



}
